package com.example.userdepartment.service;

import com.example.userdepartment.entity.Auth;
import com.example.userdepartment.vo.AuthVO;
import com.example.userdepartment.vo.LoginVO;
import com.example.userdepartment.vo.RegisterVO;

/**
 * 认证服务接口
 */
public interface AuthService {
    
    /**
     * 用户注册
     * @param registerVO 注册信息
     * @return 注册结果
     */
    AuthVO register(RegisterVO registerVO);
    
    /**
     * 用户登录
     * @param loginVO 登录信息
     * @return 登录结果，包含token
     */
    AuthVO login(LoginVO loginVO);
    
    /**
     * 根据用户名查询用户
     * @param username 用户名
     * @return 用户信息
     */
    Auth findByUsername(String username);
    
    /**
     * 检查用户名是否存在
     * @param username 用户名
     * @return 是否存在
     */
    boolean existsByUsername(String username);
    
    /**
     * 检查邮箱是否存在
     * @param email 邮箱
     * @return 是否存在
     */
    boolean existsByEmail(String email);
} 